package com.crcode.crm.dao.role;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import com.crcode.crm.bean.role.RoleBean;

/**
 * 角色数据访问接口
 * @author lxw
 * @date 2018年8月27日 下午3:07:35
 */
public interface RoleDao extends JpaSpecificationExecutor<RoleBean>, JpaRepository<RoleBean, Integer> {
	
	/**
	 * 根据角色名称查询返回实体
	 * @author lxw  
	 * @date 2018年8月27日 下午3:08:24
	 * @param roleName
	 * @return
	 */
	public List<RoleBean> findByRoleName(String roleName);
	
	/**
	 * 根据角色UUID查询返回实体
	 * @author lxw  
	 * @date 2018年8月27日 下午3:09:22
	 * @param roleCode
	 * @return
	 */
	public RoleBean findByUuid(String roleUuid);
	
	/**
	 * 角色名称等于、但角色主键不等于
	 * @author lxw  
	 * @date 2018年8月27日 下午3:09:46
	 * @param id
	 * @param roleName
	 * @return
	 */
	public List<RoleBean> findByRoleNameAndUuidNot(String roleName,String uuid);
	
	/**
	 * 根据主键集合删除数据
	 * @author lxw  
	 * @date 2018年8月27日 下午3:09:56
	 * @param ids
	 * @return
	 */
	public long deleteByUuidIn(List<String> uuids);
	
	/**
	 * 根据是否启用查询
	 * @author lxw
	 * @date 2019年1月22日
	 * @param isUse
	 * @return
	 */
	public List<RoleBean> findByIsUse(Integer isUse);
	
	/**
	 * 根据角色序号集查询
	 * @author lxw
	 * @date 2019年1月22日
	 * @param ids
	 * @return
	 */
	public List<RoleBean> findByUuidIn(List<String> uuids);
	
}
